react-hook-formのcode reading
コードがめちゃくちゃ整然としていてすごいmrsekut.icon
src/logic/内にあらゆるロジックがフラットに置かれている
ファイルツリーを見るだけでどういう機能があるのか一覧できる
ほぼほぼが1ファイルに1関数の提供、みたいな構成になっている
src/logic/createFormControl.tsであらゆるロジックが使用されるルート的存在
このcreateFormControlをuseForm.tsで使ってる
reactに依存しない実装のルート部分がcreateFormControlって感じかな
useFormから提供される関数がここで定義されている
例えば、registerとかsetValueとかそういうやつ
Controller Componentの実装すごいな
code:ts
const Controller = <
TFieldValues extends FieldValues = FieldValues,
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
(
props: ControllerProps<TFieldValues, TName>,
) => props.render(useController<TFieldValues, TName>(props));
hooks呼んでるだけ。うまい